package Vue;

import Controleur.AccueilListener;
import Controleur.ScoresListener;
import Modele.Partie;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

/**
 * JPanel qui sera � l'ouverture de l'application. Il y aura un TextField o�
 * l'�l�ve entrera son pseudo, deux RadioButton "QCM" et "Texte � trou", et le
 * JButton pour demarrer la partie.
 */
public class Accueil extends JPanel {

    private ActionEvent modeJeu; //permet de savoir s'il s'agit d'un qcm ou tat lorsqu'on valide son pseudo
    private JTextField pseudo;
    private JPanel panel_pseudo;

    public Accueil() {
        modeJeu = new ActionEvent(this, 1, "");
        initialiserAccueil();
    }

    private void initialiserAccueil() {
        //Quadrillage de trois lignes et une colonne
        this.setLayout(new GridLayout(4, 1));
        initialiserTitre(); //premiere ligne
        initialiserBouton(); //deuxieme ligne
        initialiserPseudo(); //troisieme ligne
    }

    private void initialiserTitre() {
        JPanel panel_titre = new JPanel();
        JLabel titre = new JLabel("ISI GAME");
        titre.setFont(new Font("Times New Roman", Font.BOLD, 60));
        panel_titre.add(titre);
        this.add(panel_titre);
    }

    private void initialiserBouton() {
        JPanel panel_bouton = new JPanel();
        JRadioButton qcm = new JRadioButton("QCM");
        JRadioButton tat = new JRadioButton("Texte à trou");

        //On donne des identifiants à chaque radio bouton
        qcm.setActionCommand("qcm");
        tat.setActionCommand("tat");

        qcm.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                modeJeu = event; //On indique le mode de jeu choisi par l'utlisateur
            }
        });

        tat.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent event) {
                modeJeu = event;
            }
        });

        //Permet de gérer les RadioButton (si l'un est sélectionné, l'autre se désélectionne)
        ButtonGroup groupeBouton = new ButtonGroup();
        groupeBouton.add(qcm);
        groupeBouton.add(tat);

        //Ajout des boutons dans le panel qui les affichera
        panel_bouton.add(qcm);
        panel_bouton.add(tat);
        this.add(panel_bouton);

    }

    private void initialiserPseudo() {
        panel_pseudo = new JPanel();
        JLabel label_pseudo = new JLabel("Caractère autorisé: lettres, chiffres, _                  Entrez votre pseudo");
        panel_pseudo.add(label_pseudo);
        //Champ pseudo
        pseudo = new JTextField();
        //taille du pseudo
        pseudo.setPreferredSize(new Dimension(200, 24));
        panel_pseudo.add(pseudo);
        this.add(panel_pseudo);

    }
    
    public ActionEvent getModeJeu() {
        return modeJeu;
    }

    public String getPseudo() {
        return pseudo.getText();
    }

    public void setModeJeu(ActionEvent modeJeu) {
        this.modeJeu = modeJeu;
    }

    public void setPseudo(String pseudo) {
        this.pseudo.setText(pseudo);
    }
    
    public JPanel getPanel_pseudo() {
        return panel_pseudo;
    }

    public void setPanel_pseudo(JPanel panel_pseudo) {
        this.panel_pseudo = panel_pseudo;
    }
    
    
    
    
}